package com.cy.store.Mapper;


import com.cy.store.Entity.Address;
import org.apache.ibatis.annotations.Mapper;
import org.mybatis.spring.annotation.MapperScan;

import java.util.Date;
import java.util.List;


@Mapper
//MapperScan 注解指定当前项目中的Mapper接口路径的位置，在项目启动的时候会自动加载所有的接口
@MapperScan("com.cy.store.Mapper")
//尽量不要用注解写sql语句
/**
 * 收获地址持久层接口
 */
public interface AddressMapper {
    /**
     * 插入（新增）用户的收货地址数据
     * @param address
     * @return
     */
    Integer insert(Address address);

    /**
     * 根据用户的id统计收货地址数量
     * @param uid
     * @return
     */
    Integer countByUid(Integer uid);

    /**
     * 根据用户的uid查询收货地址
     * @param uid
     * @return
     */
    List<Address> findByUid(Integer uid);

    /**
     * 根据Aid查询收货地址数据
     * @param aid
     * @return 地址数据
     */
    Address findByAid(Integer aid);

    /**
     * 根据用户的uid来修改用户的收货地址设置为默认
     * @param uid
     * @return 受影响的行数
     */
    Integer updateNonDefault(Integer uid);

    /**
     *
     * @param aid
     * @return 受影响的行数
     */
    Integer updateDefaultByAid(Integer aid, String modifiedUser, Date modifiedTime);

    /**
     * 删除
     * @param aid
     * @return
     */
    Integer deleteByAid(Integer aid);

    /**
     * 查询最近的地址数据
     * @param
     * @return
     */
    Address findNewestAddressByModifiedTime(Integer uid);



}
